Libraries

library(rio)
library(here)
library(janitor)
library(reshape2)
library(tidyverse)
library(ggplot2)
library(lme4)
library(knitr)
library(Hmisc)
library(viridis)
library(kableExtra)
library(ggeffects)

Data

df1s <- import(here("analysis-data", "cleaned-data1031.csv"))

df1s %>% 
  nrow()
## [1] 538
df2s <- df1s %>% 
  filter(aot_zscored > -3)

df2s %>% 
  nrow()
## [1] 534
df3s <- df2s %>% 
  filter(vl_zscored > -3)

df4s <- df1s %>% 
  filter(aot_zscored > -3 & vl_zscored > -3 & nfc_zscored > -3)

df4s %>% 
  nrow()
## [1] 533

Methods

Abstract. In a preregistered study, we test the relationship between science curiosity and motivated reasoning, extending work by Kahan et al. (2017) in which high science curiosity was associated with less selective exposure to politicized science news stories. N=541 participants completed a motivated reasoning task in which they viewed graphs of NASA climate change data and predicted future trends in those data before completing a validated science curiosity inventory We predicted that participants higher in science curiosity would engage in less motivated reasoning (measured through selective endpoint bias) than those lower in science curiosity, controlling for cognitive ability and political ideology.

Data collection

This study was run on Amazon Mechanical Turk via CloudResearch and utilized CAIDe lab’s Cohort 4. It was conducted in two parts: cognitive ability and demographics (including political ideology) were collected in a baseline survey, and participants completed the motivated reasoning items and science curiosity scale in a second survey. Our target sample size was N=750, but we didn’t received enough responses.

Baseline: August 16-17, 2021

  1. SNS
  2. NFC
  3. Climate risk perception
  4. NSE
  5. Adaptive ONS (and confidence)
  6. RPM (and confidence)
  7. Vocab (and confidence)
  8. Verbal logic (analogies; and confidence)
  9. Political knowledge (and confidence)
  10. AOT
  11. COVID-19 vaccine screener
  12. Demographics (ANES political ideology)

Current Study: July 13-26, 2022

  1. Motivated reasoning task (slope direction)
  • Practice item/attention check (0)
  • 4 ambiguous political items
    • 2 conservative: arctic sea ice (-) and global temperature index (+)
    • 2 liberal: ozone hole (-) and US air quality (+)
    • All participants saw one of these four items, randomly-selected, as their first item after the practice item
  • 2 unambiguous political items
    • Both conservative: ice sheets (-) and CO2 (+)
  • 1 ambiguous nonpolitical item
    • Bacteria population density (-)
  • 1 unambiguous nonpolitical item
    • Earthquake magnitude (0)
  1. Modified version of Kahan et al. (2017) science curiosity scale
  2. Data quality

Preregistration

A preregistration was posted on OSF. Below is a summary of key points (using original language found in the preregistration).

Variables

  • Item congruence
  • Item-level endpoint bias
  • Ideologically-motivated response inconsistency (IMRI)
  • Science curiosity
  • Cognitive ability
  • Political ideology
  • Climate change risk perception
  • Demographics

Hypotheses

  • H1. Trait science curiosity will moderate the relationship between item congruence and item-level endpoint bias. Higher (vs. lower) trait science curiosity will be associated with less endpoint bias on congruent (vs. incongruent) items.
  • H2. There will be a main effect of science curiosity on ideologically-motivated response inconsistency. Participants higher (vs. lower) in science curiosity will be less likely to demonstrate ideologically-motivated response inconsistencies between congruent and incongruent items.

Analysis plan

  • H1. We will use a multilevel modeling approach with random intercepts and slopes, wherein item-level performance values are nested within participants. The outcome variable in the model will be performance scores on all items for all participants (resulting in 3N observations). The predictor variables will be item congruence and science curiosity scores. Cognitive ability and political ideology will be included as covariates.
    • Manipulation check. With this model, we will also test whether there is a significant relationship between item congruence and item-level endpoint bias, such that participants exhibit greater endpoint bias on congruent items (vs. incongruent items).
  • H2. We will test a logistical regression model wherein IMRI values (0 or 1) are predicted by science curiosity scores, controlling for cognitive ability and political ideology.
  • Data exclusion. We will exclude participant data for any of the following reasons:
    • a participant’s IP address is outside of the US,
    • a participant responds to a self-report item suggesting exclusion (e.g., reports random responding or significant distraction during survey completion),
    • a participant exhibits poor performance (e.g., z < -3) on control/filler graph items,
    • a participant fails an attention check item,
    • a participant submits a nonsense response on an open-ended item,
    • and/or a participant exhibits a survey completion time more extreme than +/-3 SD of the mean.
  • Exploratory analyses.
    • We plan to explore the predictive power of participants’ climate change risk perceptions (a more proximal measure) relative to their reported political ideology. Similarly, we may also explore numeracy as a covariate instead of or alongside their performance on the RPM task.
    • The coding scheme for the IMRI variable has not yet been tested with this paradigm, so H2 and its analyses are ultimately exploratory. With this preliminary study, we may develop a better approach for testing H2, which we could then implement in future studies.
    • We may utilize participants’ 10-year predictions in an exploratory analysis. Specifically, we may test the utility of examining the difference scores or slopes created by participants’ 10- and 20-year predictions for each item in measuring endpoint bias.

Materials

Coding motivated reasoning items

Conservative-congruent item prompt.

Response options.

The politicized filler item related to CO2 levels.

Data Prepping and Cleaning

Final df is excluding:

  • Duplicates
  • Unfinished
  • Reported cheating
  • Reported bad response
  • Unapproved
  • Did not consent
  • Was not in both dfs (b and s1)
  • Outliers:
    • Duration (1)
    • Science Curiosity (3)
    • Raven’s Progressive Matrices (2)

Attention check. 381 people failed the attention check, which is honestly pretty impressive! Was clearly not a good attention check. I don’t think this is a red flag for data quality, though.

Descriptives

N\(_{total}\) = 533

  • Political ideology: 41.09% conservative, 49.53% liberal, 9.38% moderate
    • N\(_{con}\) = 219, N\(_{lib}\) = 264, N\(_{mod}\) = 50
  • Age: Mean\(_{age}\) = 43.02 (range: 19-78)
  • Gender: 46.9% women, 51.97% men, 0.38% non-binary folks, 0.75% preferred not to answer
  • Race: 83.86% White, 5.25% Black, 2.63% Hispanic, 6.38% Asian

Descriptives for conservatism measure:

vars n mean sd median trimmed mad min max range skew kurtosis se
X1 1 533 3.65 1.79 4 3.62 2.97 1 7 6 0.22 -1.14 0.08
Conservative
Moderate
Liberal
Mean SE Skew Min Max Mean SE Skew Min Max Mean Min Max SE Skew
Conservatism 5.55 0.05 0.34 4.5 7 4.00 0.00 NaN 4 4 2.08 1 3 0.04 -0.11
SciCuriosity 24.03 0.37 -0.09 9.0 37 24.68 1.01 -0.16 10 40 25.18 9 40 0.35 -0.20
RPM 5.53 0.10 -0.19 1.0 10 5.50 0.19 0.25 3 9 5.72 1 10 0.10 -0.08
ConArctic -1.11 0.09 0.79 -3.0 3 -1.24 0.18 0.84 -3 2 -1.73 -3 3 0.07 1.57
ConTemp -1.39 0.08 1.00 -3.0 2 -1.14 0.18 1.41 -3 3 -1.97 -3 2 0.06 1.33
ConFillCO2 -1.97 0.07 1.40 -3.0 2 -1.68 0.17 1.32 -3 2 -2.27 -3 1 0.06 1.65
ConFillIce -1.85 0.09 1.44 -3.0 3 -1.86 0.18 1.06 -3 1 -2.33 -3 3 0.06 2.50
LibOzone -0.31 0.10 0.44 -3.0 3 -0.52 0.19 0.15 -3 3 -0.22 -3 3 0.09 0.48
LibAir -0.82 0.11 0.71 -3.0 3 -1.16 0.20 0.78 -3 3 -0.80 -3 3 0.10 0.82
FillBacteria -0.18 0.08 0.24 -3.0 3 -0.58 0.17 0.55 -3 3 -0.35 -3 3 0.08 0.22
FillQuake 0.29 0.03 0.91 0.0 1 0.24 0.06 1.18 0 1 0.33 0 1 0.03 0.74

int_means <- df4s %>% 
  group_by(sc3, rpm3, ideo2) %>% 
  summarise_at(vars("ConArctic", "ConTemp", "LibOzone", "LibAir"), funs(mean, se_f, length))

int_means_tab <- int_means %>% 
  select(-contains("length")) %>% 
  select(sc3, rpm3, ideo2, contains("Arctic"), contains("Temp"), contains("Ozone"), contains("Air"))

“Quick and dirty” 3-way interaction means

Conservative
Liberal
SciCur Con1_M Con1_SE Con2_M Con2_SE Lib1_M Lib1_SE Lib2_M Lib2_SE
Con Above Avg -1.25 0.37 -1.88 0.23 -0.38 0.46 -1.12 0.55
Con Avg -1.16 0.10 -1.39 0.09 -0.33 0.10 -0.86 0.11
Con Below Avg -0.25 0.37 -1.08 0.26 0.00 0.37 0.00 0.35
Lib Above Avg -1.26 0.38 -2.05 0.14 0.05 0.36 -0.68 0.50
Lib Avg -1.77 0.08 -1.98 0.06 -0.23 0.09 -0.84 0.10
Lib Below Avg -1.64 0.27 -1.71 0.34 -0.43 0.39 -0.29 0.42
Mod Above Avg -1.50 0.22 -1.33 0.21 -0.67 0.49 -1.17 0.40
Mod Avg -1.26 0.22 -1.13 0.21 -0.56 0.22 -1.10 0.24
Mod Below Avg -0.80 0.58 -1.00 0.77 0.00 0.45 -1.60 0.68
Note:
* Higher scores indicate MORE endpoint bias
* M = mean, SE = standard error
* Item names: Con1 = arctic sea ice, Con2 = global temperature index, Lib1 = ozone layer hole, Lib2 = US air quality

Table color coding. The areas of the table highlighted in gray indicate for each item whether the endpoint bias was congruent with conservative or liberal beliefs. For example, Con1 and Con2 portrayed endpoint bias congruent with conservative beliefs, so the top gray square highlights the Ms and SEs of conservative participants for each item, grouped by science curiosity scores.

Science curiosity groupings. Above avg: z > 1.5, Avg: -1.5 <= z >= 1.5, Below Avg: z < -1.5

What would we predict? If our hypothesis were correct, in the gray areas of this table, there would be a negative relation between science curiosity and endpoint bias scores, indicating that higher science curiosity scores were associated with less biased responding.

Looking at these means, what do we see? The second conservative item (Con2; related to global temperature) does demonstrate directional consistency with this hypothesis among conservatives (and liberals, but with larger SEs). Furthermore, the second liberal item (Lib2; related to air quality) displays directional consistency among conservatives but not liberals.

Is it endpoint bias?

Unlike other studies, we included a few filler items in the motivated reasoning task, two of which were politicized but with clear trends and no endpoint discrepancy.

Cons MR Items
Con Filler Items
SciCur Con1_M Con1_SE Con2_M Con2_SE Fill1_M Fill1_SE Fill2_M Fill2_SE
Con Above Avg -1.25 0.37 -1.88 0.23 -2.25 0.25 -2.62 0.18
Con Avg -1.16 0.10 -1.39 0.09 -1.97 0.07 -1.84 0.09
Con Below Avg -0.25 0.37 -1.08 0.26 -1.75 0.18 -1.50 0.36
Lib Above Avg -1.26 0.38 -2.05 0.14 -2.16 0.21 -1.95 0.36
Lib Avg -1.77 0.08 -1.98 0.06 -2.30 0.06 -2.37 0.06
Lib Below Avg -1.64 0.27 -1.71 0.34 -1.93 0.32 -2.14 0.18
Mod Above Avg -1.50 0.22 -1.33 0.21 -1.67 0.33 -1.50 0.56
Mod Avg -1.26 0.22 -1.13 0.21 -1.64 0.21 -1.85 0.21
Mod Below Avg -0.80 0.58 -1.00 0.77 -2.00 0.00 -2.40 0.24
Note:
* Higher scores indicate MORE endpoint (?) bias
* M = mean, SE = standard error
* Item names: Con1 = arctic sea ice, Con2 = global temperature index, Fill1 = CO2 levels, Lib2 = ice sheet area

What’s going on? As we would expect, because their trends were not ambiguous, endpoint bias scores were lower for the filler items compared to the motivated reasoning items. Interestingly, though, they were still significantly polarized by ideology, despite the fact that we instructed participants to make their prediction “based on the given information.”

So what? Based on these results, we can’t necessarily determine whether endpoint bias was the mechanism behind polarized responding. In the case of these filler items, we know that it was not simply based on the definition of endpoint bias. Does this indicate, even in our motivated reasoning items, that this is not so much motivated reasoning as biased responding based on existing attitudes? Or are two different mechanisms at play between the filler and the endpoint items? We’d need to know more about the precise reasoning (or lack thereof) that formed their responses.

By item

Conservative #1: Arctic

df4s %>%
  ggplot(aes(x = arctic20)) +
  geom_histogram(binwidth = 1)

arcmod1 <- lm(ConArctic ~ 1, data = df4s)
summary(arcmod1)
## 
## Call:
## lm(formula = ConArctic ~ 1, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.5704 -0.5704 -0.5704  0.4296  4.4296 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.42964    0.05636  -25.37   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.301 on 532 degrees of freedom
arcmod2 <- lm(ConArctic ~ rav_scoredz, data = df4s)
summary(arcmod2)
## 
## Call:
## lm(formula = ConArctic ~ rav_scoredz, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.8142 -0.6559 -0.4976  0.4496  4.3969 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.42885    0.05630 -25.380   <2e-16 ***
## rav_scoredz -0.08432    0.05752  -1.466    0.143    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.3 on 531 degrees of freedom
## Multiple R-squared:  0.004031,   Adjusted R-squared:  0.002155 
## F-statistic: 2.149 on 1 and 531 DF,  p-value: 0.1433
anova(arcmod1, arcmod2)
## Analysis of Variance Table
## 
## Model 1: ConArctic ~ 1
## Model 2: ConArctic ~ rav_scoredz
##   Res.Df    RSS Df Sum of Sq     F Pr(>F)
## 1    532 900.61                          
## 2    531 896.98  1    3.6302 2.149 0.1433
arcmod3 <- lm(ConArctic ~ sc_scoredz + rav_scoredz, data = df4s)
summary(arcmod3)
## 
## Call:
## lm(formula = ConArctic ~ sc_scoredz + rav_scoredz, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.8931 -0.6466 -0.4877  0.4684  4.3371 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.42923    0.05629 -25.391   <2e-16 ***
## sc_scoredz  -0.06523    0.05877  -1.110    0.268    
## rav_scoredz -0.07882    0.05772  -1.365    0.173    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.299 on 530 degrees of freedom
## Multiple R-squared:  0.006341,   Adjusted R-squared:  0.002591 
## F-statistic: 1.691 on 2 and 530 DF,  p-value: 0.1853
anova(arcmod1, arcmod3)
## Analysis of Variance Table
## 
## Model 1: ConArctic ~ 1
## Model 2: ConArctic ~ sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq     F Pr(>F)
## 1    532 900.61                          
## 2    530 894.90  2    5.7106 1.691 0.1853
arcmod4 <- lm(ConArctic ~ ArcticCong + sc_scoredz + rav_scoredz, data = df4s)
summary(arcmod4)
## 
## Call:
## lm(formula = ConArctic ~ ArcticCong + sc_scoredz + rav_scoredz, 
##     data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.8698 -0.6499 -0.4741  0.4710  4.3609 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.4485336  0.0591555 -24.487   <2e-16 ***
## ArcticCong   0.0002049  0.0001934   1.060    0.290    
## sc_scoredz  -0.0654266  0.0587626  -1.113    0.266    
## rav_scoredz -0.0772759  0.0577318  -1.339    0.181    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.299 on 529 degrees of freedom
## Multiple R-squared:  0.008446,   Adjusted R-squared:  0.002823 
## F-statistic: 1.502 on 3 and 529 DF,  p-value: 0.2131
anova(arcmod1, arcmod4)
## Analysis of Variance Table
## 
## Model 1: ConArctic ~ 1
## Model 2: ConArctic ~ ArcticCong + sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq     F Pr(>F)
## 1    532 900.61                          
## 2    529 893.00  3    7.6068 1.502 0.2131
df4s_lc <- df4s %>% 
  filter(conservatism != 4) %>% 
  select(temp20_ch, arctic20_ch, ozone20_ch, airqual20_ch, co220_ch,
         icesheets20_ch, conservatism, num_score_b, sc_scored) %>% 
  drop_na() %>% 
  mutate(con_z = as.numeric(scale(conservatism)),
         sc_zed = as.numeric(scale(sc_scored)),
         ons_z = as.numeric(scale(num_score_b)))

testmod1 <- lm(arctic20_ch ~ con_z * sc_zed, data = df4s_lc)

summary(testmod1)
## 
## Call:
## lm(formula = arctic20_ch ~ con_z * sc_zed, data = df4s_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.3600 -0.9041 -0.2460  0.5739  4.6442 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   2.534292   0.061229  41.390  < 2e-16 ***
## con_z         0.360285   0.061279   5.879 8.15e-09 ***
## sc_zed       -0.003831   0.061268  -0.063    0.950    
## con_z:sc_zed -0.068253   0.063439  -1.076    0.283    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.279 on 440 degrees of freedom
## Multiple R-squared:  0.07687,    Adjusted R-squared:  0.07058 
## F-statistic: 12.21 on 3 and 440 DF,  p-value: 1.088e-07
testmod2 <- lm(arctic20_ch ~ sc_zed * con_z * ons_z, data = df4s_lc)

summary(testmod2)
## 
## Call:
## lm(formula = arctic20_ch ~ sc_zed * con_z * ons_z, data = df4s_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.3523 -0.8532 -0.2321  0.5544  4.6304 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         2.539902   0.061719  41.153  < 2e-16 ***
## sc_zed             -0.008175   0.063402  -0.129   0.8975    
## con_z               0.364432   0.061757   5.901 7.26e-09 ***
## ons_z               0.002208   0.062912   0.035   0.9720    
## sc_zed:con_z       -0.084200   0.065493  -1.286   0.1993    
## sc_zed:ons_z       -0.009953   0.064506  -0.154   0.8775    
## con_z:ons_z         0.111197   0.063904   1.740   0.0826 .  
## sc_zed:con_z:ons_z -0.053272   0.066113  -0.806   0.4208    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.279 on 436 degrees of freedom
## Multiple R-squared:  0.08554,    Adjusted R-squared:  0.07086 
## F-statistic: 5.826 on 7 and 436 DF,  p-value: 1.783e-06
testmod3 <- lm(arctic20_ch ~ sc_zed * ons_z + con_z, data = df4s_lc)

summary(testmod3)
## 
## Call:
## lm(formula = arctic20_ch ~ sc_zed * ons_z + con_z, data = df4s_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1820 -0.9898 -0.2494  0.5645  4.7713 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   2.543922   0.061115  41.625  < 2e-16 ***
## sc_zed       -0.005189   0.062239  -0.083    0.934    
## ons_z         0.002390   0.061387   0.039    0.969    
## con_z         0.360910   0.061782   5.842 1.01e-08 ***
## sc_zed:ons_z -0.012706   0.062284  -0.204    0.838    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.282 on 439 degrees of freedom
## Multiple R-squared:  0.07453,    Adjusted R-squared:  0.0661 
## F-statistic: 8.839 on 4 and 439 DF,  p-value: 7.175e-07
# rcorr(df4s$num_score_b, df4s$sc_scoredz)

sjPlot::plot_model(testmod2, type = "int", mdrt.values = "meansd")
## [[1]]

## 
## [[2]]

## 
## [[3]]

## 
## [[4]]

# terms = c("sc_zed", "ons_z", "con_z")

mean(df4s_lc$conservatism)
## [1] 3.574324
sjPlot::plot_model(testmod3, type = "int", mdrt.values = "meansd")

testmod4 <- lm(arctic20_ch ~ sc_zed * ons_z, data = df4s_lc)

summary(testmod4)
## 
## Call:
## lm(formula = arctic20_ch ~ sc_zed * ons_z, data = df4s_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.7053 -0.5958 -0.5105  0.4727  4.6225 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   2.54643    0.06337  40.182   <2e-16 ***
## sc_zed       -0.05152    0.06401  -0.805    0.421    
## ons_z        -0.02608    0.06346  -0.411    0.681    
## sc_zed:ons_z -0.04087    0.06439  -0.635    0.526    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.33 on 440 degrees of freedom
## Multiple R-squared:  0.002593,   Adjusted R-squared:  -0.004207 
## F-statistic: 0.3813 on 3 and 440 DF,  p-value: 0.7665
sjPlot::plot_model(testmod4, type = "int", mdrt.values = "meansd")

testmod5 <- lm(temp20_ch ~ sc_zed * con_z * ons_z, data = df4s_lc)

summary(testmod5)

sjPlot::plot_model(testmod5, type = "int", mdrt.values = "meansd")

df5s_lc <- df4s %>% 
  filter(conservatism != 4) %>% 
  select(co220_ch, conservatism, num_score_b, sc_scored) %>% 
  drop_na() %>% 
  mutate(con_z = as.numeric(scale(conservatism)),
         sc_zed = as.numeric(scale(sc_scored)),
         ons_z = as.numeric(scale(num_score_b)))

testmod6 <- lm(co220_ch ~ sc_zed * con_z * ons_z, data = df5s_lc)

summary(testmod6)

sjPlot::plot_model(testmod6, type = "int", mdrt.values = "meansd")

df6s_lc <- df4s %>% 
  filter(conservatism != 4) %>% 
  select(icesheets20_ch, conservatism, num_score_b, sc_scored) %>% 
  drop_na() %>% 
  mutate(con_z = as.numeric(scale(conservatism)),
         sc_zed = as.numeric(scale(sc_scored)),
         ons_z = as.numeric(scale(num_score_b)))
testmod6 <- lm(temp20_ch ~ sc_zed * con_z * ons_z, data = df4s_lc)

summary(testmod6)
## 
## Call:
## lm(formula = temp20_ch ~ sc_zed * con_z * ons_z, data = df4s_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.4757 -0.7484 -0.0852  0.3918  3.6786 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         2.301183   0.051709  44.503  < 2e-16 ***
## sc_zed             -0.123117   0.053118  -2.318   0.0209 *  
## con_z               0.363198   0.051741   7.020 8.57e-12 ***
## ons_z              -0.000589   0.052708  -0.011   0.9911    
## sc_zed:con_z       -0.032340   0.054870  -0.589   0.5559    
## sc_zed:ons_z       -0.012788   0.054044  -0.237   0.8131    
## con_z:ons_z         0.124920   0.053539   2.333   0.0201 *  
## sc_zed:con_z:ons_z -0.113404   0.055390  -2.047   0.0412 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.072 on 436 degrees of freedom
## Multiple R-squared:  0.1353, Adjusted R-squared:  0.1214 
## F-statistic: 9.748 on 7 and 436 DF,  p-value: 2.678e-11
sjPlot::plot_model(testmod6, type = "int", mdrt.values = "meansd")
## [[1]]

## 
## [[2]]

## 
## [[3]]

## 
## [[4]]

# arctic one (below)

testmod8 <- lm(arctic20_ch ~ sc_zed * con_z * ons_z, data = df4s_lc)

summary(testmod8)
## 
## Call:
## lm(formula = arctic20_ch ~ sc_zed * con_z * ons_z, data = df4s_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.3523 -0.8532 -0.2321  0.5544  4.6304 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         2.539902   0.061719  41.153  < 2e-16 ***
## sc_zed             -0.008175   0.063402  -0.129   0.8975    
## con_z               0.364432   0.061757   5.901 7.26e-09 ***
## ons_z               0.002208   0.062912   0.035   0.9720    
## sc_zed:con_z       -0.084200   0.065493  -1.286   0.1993    
## sc_zed:ons_z       -0.009953   0.064506  -0.154   0.8775    
## con_z:ons_z         0.111197   0.063904   1.740   0.0826 .  
## sc_zed:con_z:ons_z -0.053272   0.066113  -0.806   0.4208    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.279 on 436 degrees of freedom
## Multiple R-squared:  0.08554,    Adjusted R-squared:  0.07086 
## F-statistic: 5.826 on 7 and 436 DF,  p-value: 1.783e-06
sjPlot::plot_model(testmod8, type = "int", mdrt.values = "meansd")
## [[1]]

## 
## [[2]]

## 
## [[3]]

## 
## [[4]]

testmod9 <- lm(co220_ch ~ sc_zed * con_z * ons_z, data = df4s_lc)

summary(testmod9)
## 
## Call:
## lm(formula = co220_ch ~ sc_zed * con_z * ons_z, data = df4s_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.3258 -0.7251 -0.0507  0.3201  3.9825 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         1.85823    0.04646  39.999  < 2e-16 ***
## sc_zed             -0.08727    0.04772  -1.829  0.06812 .  
## con_z               0.16863    0.04649   3.628  0.00032 ***
## ons_z               0.05009    0.04735   1.058  0.29079    
## sc_zed:con_z       -0.01629    0.04930  -0.331  0.74116    
## sc_zed:ons_z        0.01898    0.04855   0.391  0.69612    
## con_z:ons_z         0.07046    0.04810   1.465  0.14372    
## sc_zed:con_z:ons_z -0.04106    0.04976  -0.825  0.40982    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9629 on 436 degrees of freedom
## Multiple R-squared:  0.04678,    Adjusted R-squared:  0.03148 
## F-statistic: 3.057 on 7 and 436 DF,  p-value: 0.003757
sjPlot::plot_model(testmod9, type = "int", mdrt.values = "meansd")
## [[1]]

## 
## [[2]]

## 
## [[3]]

## 
## [[4]]

testmod10 <- lm(temp20_ch ~ ons_z * con_z, data = df4s_lc)

summary(testmod10)
## 
## Call:
## lm(formula = temp20_ch ~ ons_z * con_z, data = df4s_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0929 -0.7396 -0.0982  0.4378  3.7926 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.31177    0.05131  45.054  < 2e-16 ***
## ons_z        0.01272    0.05174   0.246  0.80598    
## con_z        0.37340    0.05138   7.268 1.68e-12 ***
## ons_z:con_z  0.13990    0.05257   2.661  0.00807 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.077 on 440 degrees of freedom
## Multiple R-squared:  0.119,  Adjusted R-squared:  0.113 
## F-statistic: 19.82 on 3 and 440 DF,  p-value: 4.587e-12
sjPlot::plot_model(testmod10, type = "int", mdrt.values = "meansd")

postermod <- lm(temp20_ch ~ sc_zed * con_z * ons_z, data = df4s_lc)

summary(postermod)
## 
## Call:
## lm(formula = temp20_ch ~ sc_zed * con_z * ons_z, data = df4s_lc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.4757 -0.7484 -0.0852  0.3918  3.6786 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         2.301183   0.051709  44.503  < 2e-16 ***
## sc_zed             -0.123117   0.053118  -2.318   0.0209 *  
## con_z               0.363198   0.051741   7.020 8.57e-12 ***
## ons_z              -0.000589   0.052708  -0.011   0.9911    
## sc_zed:con_z       -0.032340   0.054870  -0.589   0.5559    
## sc_zed:ons_z       -0.012788   0.054044  -0.237   0.8131    
## con_z:ons_z         0.124920   0.053539   2.333   0.0201 *  
## sc_zed:con_z:ons_z -0.113404   0.055390  -2.047   0.0412 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.072 on 436 degrees of freedom
## Multiple R-squared:  0.1353, Adjusted R-squared:  0.1214 
## F-statistic: 9.748 on 7 and 436 DF,  p-value: 2.678e-11
sjPlot::plot_model(postermod, type = "int", mdrt.values = "meansd")
## [[1]]

## 
## [[2]]

## 
## [[3]]

## 
## [[4]]

posterplot <- ggpredict(postermod,
                        terms = c("sc_zed", "con_z [1,0,-1]", 
                                  "ons_z [1,0,-1]"),
                        ci.lvl = .95) %>% 
  mutate(scicur = x,
         resp = predicted,
         con = group,
         ons = facet,
         ons_labs = dplyr::recode(ons,
                       `1` = "Numeracy: z = 1",
                       `0` = "Numeracy: z = 0",
                       `-1` = "Numeracy: z = -1")) 
sjdmplot <- posterplot %>% 
  ggplot(aes(x = scicur, y = resp, color = con)) +
  stat_smooth(method = "lm", fullrange = T, size = 2, fill = "lightgray") +
  geom_ribbon(aes(x = scicur, ymin = conf.low, ymax = conf.high,
                  fill = con), alpha = .1) +
  facet_wrap(~ons_labs,
             ncol = 1) +
  theme_bw() +
  labs(x = "Science Curiosity (z-scored)", 
       y = "Predicted Change in Global Temperature",
       color = "Conservativism (z-scored)") +
  scale_color_manual(labels = c("Low", "Average", "High"),
                     values = c("blue", "black", "red", "white")) +
  scale_fill_manual(values = c("blue", "black", "red", "white")) +
  scale_x_discrete(limits = c(-2.5, -2, -1.5, -1, -0.5, 
                              0, 0.5, 1, 1.5, 2, 2.5)) +
  scale_y_discrete(limits = seq(from = 1, to = 4, by = .5)) +
  theme(legend.position = "top",
        axis.title = element_text(size = 50),
        axis.text = element_text(size = 45),
        legend.title = element_text(size = 45),
        legend.text = element_text(size = 45),
        strip.text = element_text(size = 45)) +
  guides(fill = "none")

ggsave(filename = "sjdmplot.png", width = 20, height = 25, dpi = 300)
sjdmplot <- posterplot %>% 
  ggplot(aes(x = scicur, y = resp, color = con)) +
  stat_smooth(method = "lm", fullrange = T, size = 2, fill = "lightgray") +
  geom_ribbon(aes(x = scicur, ymin = conf.low, ymax = conf.high,
                  fill = con), alpha = .1) +
  facet_wrap(~ons_labs,
             ncol = 1) +
  theme_bw() +
  labs(x = "Science Curiosity (z-scored)", 
       y = "Predicted Change in Arctic Sea Ice",
       color = "Conservativism (z-scored)") +
  scale_color_manual(labels = c("Low", "Average", "High"),
                     values = c("blue", "black", "red", "white")) +
  scale_fill_manual(values = c("blue", "black", "red", "white")) +
  scale_x_discrete(limits = c(-2.5, -2, -1.5, -1, -0.5, 
                              0, 0.5, 1, 1.5, 2, 2.5),
                   expand = c(.01, .01)) +
  scale_y_discrete(limits = seq(from = 1, to = 4, by = .5)) +
  theme(legend.position = "top",
        axis.title = element_text(size = 40),
        axis.text = element_text(size = 35),
        legend.title = element_text(size = 35),
        legend.text = element_text(size = 35),
        strip.text = element_text(size = 35)) +
  guides(fill = "none")

ggsave(filename = "sjdmplot.png", width = 16, height = 22, dpi = 300)
amodel1 <- lm(data = df4s, formula = arctic20 ~ con + rav_scored)
summary(amodel1)

amodel2 <- lm(data = df4s, formula = arctic20 ~ sc_scored + con + rav_scored)
summary(amodel2)

Conservative #2: Temp

df4s %>%
  ggplot(aes(x = temp20)) +
  geom_histogram(binwidth = 1)

tempmod1 <- lm(ConTemp ~ 1, data = df4s)
summary(tempmod1)
## 
## Call:
## lm(formula = ConTemp ~ 1, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.3471 -0.3471 -0.3471  0.6529  4.6529 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.65291    0.04964   -33.3   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.146 on 532 degrees of freedom
tempmod2 <- lm(ConTemp ~ rav_scoredz, data = df4s)
summary(tempmod2)
## 
## Call:
## lm(formula = ConTemp ~ rav_scoredz, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.6161 -0.4415 -0.3250  0.6168  4.6750 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.65203    0.04953 -33.351   <2e-16 ***
## rav_scoredz -0.09302    0.05061  -1.838   0.0666 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.144 on 531 degrees of freedom
## Multiple R-squared:  0.006323,   Adjusted R-squared:  0.004451 
## F-statistic: 3.379 on 1 and 531 DF,  p-value: 0.0666
anova(tempmod1, tempmod2)
## Analysis of Variance Table
## 
## Model 1: ConTemp ~ 1
## Model 2: ConTemp ~ rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)  
## 1    532 698.79                             
## 2    531 694.37  1    4.4182 3.3787 0.0666 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
tempmod3 <- lm(ConTemp ~ sc_scoredz + rav_scoredz, data = df4s)
summary(tempmod3)
## 
## Call:
## lm(formula = ConTemp ~ sc_scoredz + rav_scoredz, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.7689 -0.5174 -0.2900  0.5978  4.7220 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.65277    0.04930 -33.523   <2e-16 ***
## sc_scoredz  -0.12637    0.05148  -2.455   0.0144 *  
## rav_scoredz -0.08236    0.05056  -1.629   0.1039    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.138 on 530 degrees of freedom
## Multiple R-squared:  0.0175, Adjusted R-squared:  0.01379 
## F-statistic: 4.719 on 2 and 530 DF,  p-value: 0.009304
anova(tempmod1, tempmod3)
## Analysis of Variance Table
## 
## Model 1: ConTemp ~ 1
## Model 2: ConTemp ~ sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F   Pr(>F)   
## 1    532 698.79                                
## 2    530 686.56  2    12.226 4.7188 0.009304 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
tempmod4 <- lm(ConTemp ~ TempCong + sc_scoredz + rav_scoredz, data = df4s)
summary(tempmod4)
## 
## Call:
## lm(formula = ConTemp ~ TempCong + sc_scoredz + rav_scoredz, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.8364 -0.6130 -0.2471  0.6125  4.2125 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.7057288  0.0513271 -33.232  < 2e-16 ***
## TempCong     0.0005622  0.0001678   3.351 0.000863 ***
## sc_scoredz  -0.1269027  0.0509863  -2.489 0.013118 *  
## rav_scoredz -0.0781344  0.0500918  -1.560 0.119400    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.127 on 529 degrees of freedom
## Multiple R-squared:  0.03792,    Adjusted R-squared:  0.03246 
## F-statistic:  6.95 on 3 and 529 DF,  p-value: 0.0001358
anova(tempmod3, tempmod4)
## Analysis of Variance Table
## 
## Model 1: ConTemp ~ sc_scoredz + rav_scoredz
## Model 2: ConTemp ~ TempCong + sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F    Pr(>F)    
## 1    530 686.56                                  
## 2    529 672.29  1     14.27 11.229 0.0008629 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
tmodel1 <- lm(data = df4s, formula = temp20 ~ con + rav_scored)
summary(tmodel1)
## 
## Call:
## lm(formula = temp20 ~ con + rav_scored, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.8841 -0.6924 -0.1105  0.4035  4.6465 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.35887    0.17960  -7.566 1.72e-13 ***
## con          0.29092    0.05083   5.724 1.75e-08 ***
## rav_scored  -0.04794    0.03082  -1.556     0.12    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.111 on 530 degrees of freedom
## Multiple R-squared:  0.06417,    Adjusted R-squared:  0.06063 
## F-statistic: 18.17 on 2 and 530 DF,  p-value: 2.332e-08
tmodel2 <- lm(data = df4s, formula = temp20 ~ sc_scored + con + rav_scored)
summary(tmodel2)
## 
## Call:
## lm(formula = temp20 ~ sc_scored + con + rav_scored, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.9977 -0.7322 -0.1271  0.4466  4.6851 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.969683   0.263799  -3.676 0.000261 ***
## sc_scored   -0.016956   0.008439  -2.009 0.045012 *  
## con          0.281630   0.050895   5.534 4.94e-08 ***
## rav_scored  -0.042931   0.030833  -1.392 0.164387    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.108 on 529 degrees of freedom
## Multiple R-squared:  0.07125,    Adjusted R-squared:  0.06599 
## F-statistic: 13.53 on 3 and 529 DF,  p-value: 1.621e-08

Liberal #1: Ozone

df4s %>%
  ggplot(aes(x = ozone20)) +
  geom_histogram(binwidth = 1)

int_means_tab %>% 
  ggplot(aes(x = sc3, y = LibOzone_mean, fill = ideo2)) +
  geom_bar(stat = "identity", position = "dodge") +
  # scale_x_discrete(labels = c("Con", "Lib", "Mod")) +
  scale_fill_manual(values = c("brown3", "deepskyblue3", "darkmagenta")) +
  theme_bw() +
  labs(x = "Science Curiosity", fill = "Ideology", y = "Weighting Local Trend", title = "Lib Ozone Item") +
  geom_errorbar(aes(ymin=LibOzone_mean-LibOzone_se_f, ymax=LibOzone_mean+LibOzone_se_f), position = "dodge")

ozmod1 <- lm(LibOzone ~ 1, data = df4s)
summary(ozmod1)
## 
## Call:
## lm(formula = LibOzone ~ 1, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.7167 -0.7167 -0.7167  1.2833  3.2833 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.28330    0.06086  -4.655 4.09e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.405 on 532 degrees of freedom
ozmod2 <- lm(LibOzone ~ rav_scoredz, data = df4s)
summary(ozmod2)
## 
## Call:
## lm(formula = LibOzone ~ rav_scoredz, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.8618 -0.7416 -0.6214  1.2584  3.3786 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.28270    0.06086  -4.645 4.29e-06 ***
## rav_scoredz -0.06402    0.06218  -1.030    0.304    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.405 on 531 degrees of freedom
## Multiple R-squared:  0.001993,   Adjusted R-squared:  0.0001131 
## F-statistic:  1.06 on 1 and 531 DF,  p-value: 0.3036
anova(ozmod1, ozmod2)
## Analysis of Variance Table
## 
## Model 1: LibOzone ~ 1
## Model 2: LibOzone ~ rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1    532 1050.2                           
## 2    531 1048.1  1    2.0927 1.0602 0.3036
ozmod3 <- lm(LibOzone ~ sc_scoredz + rav_scoredz, data = df4s)
summary(ozmod3)
## 
## Call:
## lm(formula = LibOzone ~ sc_scoredz + rav_scoredz, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.8531 -0.7784 -0.6067  1.2303  3.4422 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.28233    0.06086  -4.639 4.42e-06 ***
## sc_scoredz   0.06217    0.06354   0.978    0.328    
## rav_scoredz -0.06927    0.06241  -1.110    0.268    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.405 on 530 degrees of freedom
## Multiple R-squared:  0.003792,   Adjusted R-squared:  3.225e-05 
## F-statistic: 1.009 on 2 and 530 DF,  p-value: 0.3654
anova(ozmod1, ozmod3)
## Analysis of Variance Table
## 
## Model 1: LibOzone ~ 1
## Model 2: LibOzone ~ sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1    532 1050.2                           
## 2    530 1046.2  2    3.9819 1.0086 0.3654
ozmod4 <- lm(LibOzone ~ OzoneCong + sc_scoredz + rav_scoredz, data = df4s)
summary(ozmod4)
## 
## Call:
## lm(formula = LibOzone ~ OzoneCong + sc_scoredz + rav_scoredz, 
##     data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.8806 -0.7968 -0.6029  1.2086  3.4732 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.2571049  0.0639370  -4.021 6.63e-05 ***
## OzoneCong   -0.0002676  0.0002090  -1.280    0.201    
## sc_scoredz   0.0624419  0.0635065   0.983    0.326    
## rav_scoredz -0.0712639  0.0623921  -1.142    0.254    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.404 on 529 degrees of freedom
## Multiple R-squared:  0.006868,   Adjusted R-squared:  0.001236 
## F-statistic:  1.22 on 3 and 529 DF,  p-value: 0.3019
anova(ozmod1, ozmod4)
## Analysis of Variance Table
## 
## Model 1: LibOzone ~ 1
## Model 2: LibOzone ~ OzoneCong + sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F Pr(>F)
## 1    532 1050.2                           
## 2    529 1043.0  3    7.2134 1.2195 0.3019
omodel1 <- lm(data = df4s, formula = ozone20 ~ con + rav_scored)
summary(omodel1)
## 
## Call:
## lm(formula = ozone20 ~ con + rav_scored, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.9177 -0.7918 -0.6123  1.2082  3.4412 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.05196    0.22723  -0.229    0.819
## con         -0.05359    0.06431  -0.833    0.405
## rav_scored  -0.04196    0.03899  -1.076    0.282
## 
## Residual standard error: 1.405 on 530 degrees of freedom
## Multiple R-squared:  0.003299,   Adjusted R-squared:  -0.0004625 
## F-statistic: 0.877 on 2 and 530 DF,  p-value: 0.4166
omodel2 <- lm(data = df4s, formula = ozone20 ~ sc_scored + con + rav_scored)
summary(omodel2)
## 
## Call:
## lm(formula = ozone20 ~ sc_scored + con + rav_scored, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.8586 -0.7981 -0.5827  1.2080  3.3886 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.274627   0.334764  -0.820    0.412
## sc_scored    0.009701   0.010709   0.906    0.365
## con         -0.048274   0.064586  -0.747    0.455
## rav_scored  -0.044829   0.039127  -1.146    0.252
## 
## Residual standard error: 1.406 on 529 degrees of freedom
## Multiple R-squared:  0.004842,   Adjusted R-squared:  -0.0008011 
## F-statistic: 0.858 on 3 and 529 DF,  p-value: 0.4627

Liberal #2: Air Quality

df4s %>%
  ggplot(aes(x = airqual20)) +
  geom_histogram(binwidth = 1)

int_means_tab %>% 
  ggplot(aes(x = sc3, y = LibAir_mean, fill = ideo2)) +
  geom_bar(stat = "identity", position = "dodge") +
  # scale_x_discrete(labels = c("Con", "Lib", "Mod")) +
  scale_fill_manual(values = c("brown3", "deepskyblue3", "darkmagenta")) +
  theme_bw() +
  labs(x = "Science Curiosity", fill = "Ideology", y = "Weighting Local Trend", title = "Lib Air Item") +
  geom_errorbar(aes(ymin=LibAir_mean-LibAir_se_f, ymax=LibAir_mean+LibAir_se_f), position = "dodge")

airmod1 <- lm(LibAir ~ 1, data = df4s)
summary(airmod1)
## 
## Call:
## lm(formula = LibAir ~ 1, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1557 -1.1557 -0.1557  0.8443  3.8443 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.84428    0.06849  -12.33   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.581 on 532 degrees of freedom
airmod2 <- lm(LibAir ~ rav_scoredz, data = df4s)
summary(airmod2)
## 
## Call:
## lm(formula = LibAir ~ rav_scoredz, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.5193 -1.1259 -0.2833  0.9528  4.0314 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.84309    0.06835  -12.34   <2e-16 ***
## rav_scoredz -0.12570    0.06983   -1.80   0.0724 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.578 on 531 degrees of freedom
## Multiple R-squared:  0.006065,   Adjusted R-squared:  0.004193 
## F-statistic:  3.24 on 1 and 531 DF,  p-value: 0.07241
anova(airmod1, airmod2)
## Analysis of Variance Table
## 
## Model 1: LibAir ~ 1
## Model 2: LibAir ~ rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F  Pr(>F)  
## 1    532 1330.1                              
## 2    531 1322.0  1    8.0673 3.2403 0.07241 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
airmod3 <- lm(LibAir ~ sc_scoredz + rav_scoredz, data = df4s)
summary(airmod3)
## 
## Call:
## lm(formula = LibAir ~ sc_scoredz + rav_scoredz, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.6277 -1.1527 -0.2882  1.0567  4.1005 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.84361    0.06831 -12.349   <2e-16 ***
## sc_scoredz  -0.08974    0.07132  -1.258   0.2089    
## rav_scoredz -0.11813    0.07005  -1.686   0.0923 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.577 on 530 degrees of freedom
## Multiple R-squared:  0.009025,   Adjusted R-squared:  0.005286 
## F-statistic: 2.414 on 2 and 530 DF,  p-value: 0.09048
anova(airmod1, airmod3)
## Analysis of Variance Table
## 
## Model 1: LibAir ~ 1
## Model 2: LibAir ~ sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F  Pr(>F)  
## 1    532 1330.1                              
## 2    530 1318.1  2    12.004 2.4135 0.09048 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
airmod4 <- lm(LibAir ~ AirCong + sc_scoredz + rav_scoredz, data = df4s)
summary(airmod4)
## 
## Call:
## lm(formula = LibAir ~ AirCong + sc_scoredz + rav_scoredz, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.6687 -1.1710 -0.3216  1.1310  4.3537 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.8098036  0.0717166 -11.292   <2e-16 ***
## AirCong     -0.0003586  0.0002344  -1.530   0.1267    
## sc_scoredz  -0.0893699  0.0712337  -1.255   0.2102    
## rav_scoredz -0.1208028  0.0699837  -1.726   0.0849 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.575 on 529 degrees of freedom
## Multiple R-squared:  0.01339,    Adjusted R-squared:  0.007795 
## F-statistic: 2.393 on 3 and 529 DF,  p-value: 0.06764
anova(airmod1, airmod4)
## Analysis of Variance Table
## 
## Model 1: LibAir ~ 1
## Model 2: LibAir ~ AirCong + sc_scoredz + rav_scoredz
##   Res.Df    RSS Df Sum of Sq      F  Pr(>F)  
## 1    532 1330.1                              
## 2    529 1312.3  3    17.809 2.3931 0.06764 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
aqmodel1 <- lm(data = df4s, formula = airqual20 ~ con + rav_scored)
summary(aqmodel1)
## 
## Call:
## lm(formula = airqual20 ~ con + rav_scored, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.5007 -1.1441 -0.2626  0.9554  4.0348 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -0.39976    0.25535  -1.566   0.1180  
## con         -0.02013    0.07226  -0.279   0.7806  
## rav_scored  -0.07938    0.04382  -1.812   0.0706 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.579 on 530 degrees of freedom
## Multiple R-squared:  0.006211,   Adjusted R-squared:  0.002461 
## F-statistic: 1.656 on 2 and 530 DF,  p-value: 0.1919
aqmodel2 <- lm(data = df4s, formula = airqual20 ~ sc_scored + con + rav_scored)
summary(aqmodel2)
## 
## Call:
## lm(formula = airqual20 ~ sc_scored + con + rav_scored, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.6045 -1.1586 -0.2898  1.0349  4.0787 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -0.04432    0.37589  -0.118   0.9062  
## sc_scored   -0.01549    0.01202  -1.288   0.1983  
## con         -0.02862    0.07252  -0.395   0.6932  
## rav_scored  -0.07481    0.04393  -1.703   0.0892 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.578 on 529 degrees of freedom
## Multiple R-squared:  0.009317,   Adjusted R-squared:  0.003699 
## F-statistic: 1.658 on 3 and 529 DF,  p-value: 0.175
int_means_fill <- df4s %>% 
  group_by(sc3, ideo2) %>% 
  summarise_at(vars("FillBacteria", "FillQuake", "ConFillCO2", "ConFillIce"), funs(mean, se_f, length))

int_means_tab_fill <- int_means_fill %>% 
  select(-contains("length")) %>% 
  select(sc3, ideo2, contains("Fill"))

CO2 Filler

int_means_tab_fill %>% 
  ggplot(aes(x = sc3, y = ConFillCO2_mean, fill = ideo2)) +
  geom_bar(stat = "identity", position = "dodge") +
  # scale_x_discrete(labels = c("Con", "Lib", "Mod")) +
  scale_fill_manual(values = c("brown3", "deepskyblue3", "darkmagenta")) +
  theme_bw() +
  labs(x = "Science Curiosity", fill = "Ideology", y = "Weighting Local Trend", title = "Con Fill CO2 Item") +
  geom_errorbar(aes(ymin=ConFillCO2_mean-ConFillCO2_se_f, ymax=ConFillCO2_mean+ConFillCO2_se_f), position = "dodge")

Ice Filler

int_means_tab_fill %>% 
  ggplot(aes(x = sc3, y = ConFillIce_mean, fill = ideo2)) +
  geom_bar(stat = "identity", position = "dodge") +
  # scale_x_discrete(labels = c("Con", "Lib", "Mod")) +
  scale_fill_manual(values = c("brown3", "deepskyblue3", "darkmagenta")) +
  theme_bw() +
  labs(x = "Science Curiosity", fill = "Ideology", y = "Weighting Local Trend", title = "Con Fill CO2 Item") +
  geom_errorbar(aes(ymin=ConFillIce_mean-ConFillIce_se_f, ymax=ConFillIce_mean+ConFillIce_se_f), position = "dodge")

Bacteria Filler

int_means_tab_fill %>% 
  ggplot(aes(x = sc3, y = FillBacteria_mean, fill = ideo2)) +
  geom_bar(stat = "identity", position = "dodge") +
  # scale_x_discrete(labels = c("Con", "Lib", "Mod")) +
  scale_fill_manual(values = c("brown3", "deepskyblue3", "darkmagenta")) +
  theme_bw() +
  labs(x = "Science Curiosity", fill = "Ideology", y = "Weighting Local Trend", title = "Fill Bacteria Item") +
  geom_errorbar(aes(ymin=FillBacteria_mean-FillBacteria_se_f, ymax=FillBacteria_mean+FillBacteria_se_f), position = "dodge")

Quake Filler

int_means_tab_fill %>% 
  ggplot(aes(x = sc3, y = FillQuake_mean, fill = ideo2)) +
  geom_bar(stat = "identity", position = "dodge") +
  # scale_x_discrete(labels = c("Con", "Lib", "Mod")) +
  scale_fill_manual(values = c("brown3", "deepskyblue3", "darkmagenta")) +
  theme_bw() +
  labs(x = "Science Curiosity", fill = "Ideology", y = "Weighting Local Trend", title = "Fill Quake Item") +
  geom_errorbar(aes(ymin=FillQuake_mean-FillQuake_se_f, ymax=FillQuake_mean+FillQuake_se_f), position = "dodge")

Preregistered Analyses

MLM (H1)

attempt 2

dfmlm1 <- df4s %>% 
  pivot_longer(., cols = c(arctic20_ch, temp20_ch, co220_ch, icesheets20_ch),
               names_to = "item",
               values_to = "response",
               values_drop_na = T)
dfmlm2 <- dfmlm1 %>% 
  select(id, con, conservatism, item, response, sc_scored, sc_scoredz, 
         num_score_b, rav_scored, rav_scoredz) %>% 
  mutate(item_slope = factor(case_when(
    item == "arctic20_ch" | item == "ice_sheets20_ch" ~ "neg",
    item == "temp20_ch" | item == "co220_ch" ~ "pos"
    )),
  item_ambiguous = factor(case_when(
    item == "arctic20_ch" | item == "temp20_ch" ~ "1",
    item == "co220_ch" | item == "ice_sheets20_ch" ~ "0" 
  )),
  item = factor(item),
  response = as.numeric(response),
  id = factor(id),
  conservatism = as.numeric(conservatism),
  sc_zscored = as.numeric(sc_scoredz),
  rav_zscored = as.numeric(rav_scoredz),
  ons_zscored = as.numeric(scale(num_score_b)),
  con_z = as.numeric(scale(conservatism))
)
int_model1 <- lmer(response ~ 1 + (1 | item), data = dfmlm2)

summary(int_model1)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + (1 | item)
##    Data: dfmlm2
## 
## REML criterion at convergence: 6701.5
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -1.3452 -0.7879 -0.2958  0.3779  4.3784 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  item     (Intercept) 0.1062   0.3258  
##  Residual             1.3472   1.1607  
## Number of obs: 2132, groups:  item, 4
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   2.1843     0.1648   13.25
int_model2 <- lmer(response ~ 1 + (1 | item) + (1 | id), data = dfmlm2)

summary(int_model2)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + (1 | item) + (1 | id)
##    Data: dfmlm2
## 
## REML criterion at convergence: 6200.8
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -2.9578 -0.4969 -0.0477  0.3325  5.6287 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  id       (Intercept) 0.6069   0.7790  
##  item     (Intercept) 0.1073   0.3276  
##  Residual             0.7403   0.8604  
## Number of obs: 2132, groups:  id, 533; item, 4
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   2.1843     0.1683   12.98
anova(int_model1, int_model2)
## Data: dfmlm2
## Models:
## int_model1: response ~ 1 + (1 | item)
## int_model2: response ~ 1 + (1 | item) + (1 | id)
##            npar    AIC    BIC  logLik deviance  Chisq Df Pr(>Chisq)    
## int_model1    3 6705.6 6722.6 -3349.8   6699.6                         
## int_model2    4 6206.9 6229.6 -3099.5   6198.9 500.67  1  < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
model3 <- lmer(response ~ 1 + conservatism_f + (1 + conservatism_f | item) + 
                 (1 + conservatism_f | id), data = dfmlm2)

summary(model3)

anova(int_model2, model3)

attempt 3

int_model1 <- lmer(response ~ 1 + (1 | item), data = dfmlm2)

summary(int_model1)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + (1 | item)
##    Data: dfmlm2
## 
## REML criterion at convergence: 6701.5
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -1.3452 -0.7879 -0.2958  0.3779  4.3784 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  item     (Intercept) 0.1062   0.3258  
##  Residual             1.3472   1.1607  
## Number of obs: 2132, groups:  item, 4
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   2.1843     0.1648   13.25
int_model2 <- lmer(response ~ 1 + (1 | item) + (1 | id), data = dfmlm2)

summary(int_model2)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + (1 | item) + (1 | id)
##    Data: dfmlm2
## 
## REML criterion at convergence: 6200.8
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -2.9578 -0.4969 -0.0477  0.3325  5.6287 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  id       (Intercept) 0.6069   0.7790  
##  item     (Intercept) 0.1073   0.3276  
##  Residual             0.7403   0.8604  
## Number of obs: 2132, groups:  id, 533; item, 4
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)   2.1843     0.1683   12.98
anova(int_model1, int_model2)
## Data: dfmlm2
## Models:
## int_model1: response ~ 1 + (1 | item)
## int_model2: response ~ 1 + (1 | item) + (1 | id)
##            npar    AIC    BIC  logLik deviance  Chisq Df Pr(>Chisq)    
## int_model1    3 6705.6 6722.6 -3349.8   6699.6                         
## int_model2    4 6206.9 6229.6 -3099.5   6198.9 500.67  1  < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
model3 <- lmer(response ~ 1 + conservatism_f + (1 + conservatism_f | item) + 
                 (1 + conservatism_f | id), data = dfmlm2)

summary(model3)

anova(int_model2, model3)

model4 <- lmer(response ~ 1 + conservatism_f + 
                 (1 | item) + 
                 (1 + conservatism_f | id), data = dfmlm2)

summary(model4)

anova(int_model2, model4)

model5 <- lmer(response ~ 1 + conservatism_f + sc_zscored + 
                 (1 | item) + 
                 (1 + conservatism_f + sc_zscored | id), data = dfmlm2)

summary(model5)

anova(model4, model5)

model6 <- lmer(response ~ 1 + conservatism_f + rav_zscored + 
                 (1 | item) + 
                 (1 + conservatism_f + rav_zscored | id), data = dfmlm2)

summary(model6)

anova(model4, model6)

model7 <- lmer(response ~ 1 + conservatism_f + rav_zscored + aot_zscored +
                 (1 | item) + 
                 (1 + conservatism_f + rav_zscored + aot_zscored| id), data = dfmlm2)

summary(model7)

anova(model6, model7)
model7 <- lmer(response ~ 1 + conservatism * sc_scoredz +
                 (1 | item) + 
                 (1 | id), data = dfmlm2)

summary(model7)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + conservatism * sc_scoredz + (1 | item) + (1 |      id)
##    Data: dfmlm2
## 
## REML criterion at convergence: 6161.4
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -2.8716 -0.5656 -0.1271  0.3531  5.7214 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  id       (Intercept) 0.5321   0.7295  
##  item     (Intercept) 0.1073   0.3276  
##  Residual             0.7403   0.8604  
## Number of obs: 2132, groups:  id, 533; item, 4
## 
## Fixed effects:
##                          Estimate Std. Error t value
## (Intercept)              1.627917   0.184053   8.845
## conservatism             0.151779   0.020696   7.334
## sc_scoredz               0.008479   0.091480   0.093
## conservatism:sc_scoredz -0.014994   0.022766  -0.659
## 
## Correlation of Fixed Effects:
##             (Intr) cnsrvt sc_scr
## conservatsm -0.410              
## sc_scoredz  -0.038  0.040       
## cnsrvtsm:s_  0.021  0.008 -0.908
dfmlm3 <- dfmlm2 %>% 
  filter(conservatism != 4)

model8 <- lmer(response ~ 1 + con_z * sc_scoredz * ons_zscored + 
                 item_ambiguous +
                 (1 | item) + 
                 (1 | id), data = dfmlm3)

summary(model8)
## Linear mixed model fit by REML ['lmerMod']
## Formula: response ~ 1 + con_z * sc_scoredz * ons_zscored + item_ambiguous +  
##     (1 | item) + (1 | id)
##    Data: dfmlm3
## 
## REML criterion at convergence: 3942.7
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -2.2695 -0.5549 -0.1064  0.3875  4.3673 
## 
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  id       (Intercept) 0.45507  0.6746  
##  item     (Intercept) 0.02781  0.1668  
##  Residual             0.78746  0.8874  
## Number of obs: 1332, groups:  id, 444; item, 3
## 
## Fixed effects:
##                               Estimate Std. Error t value
## (Intercept)                   1.868527   0.175110  10.671
## con_z                         0.272321   0.037418   7.278
## sc_scoredz                   -0.079182   0.044692  -1.772
## ons_zscored                   0.020858   0.041663   0.501
## item_ambiguous1               0.563063   0.210655   2.673
## con_z:sc_scoredz             -0.042198   0.042157  -1.001
## con_z:ons_zscored             0.093213   0.038524   2.420
## sc_scoredz:ons_zscored       -0.004001   0.045399  -0.088
## con_z:sc_scoredz:ons_zscored -0.067089   0.042417  -1.582
## 
## Correlation of Fixed Effects:
##             (Intr) con_z  sc_scr ons_zs itm_m1 cn_z:s_ cn_z:n_ sc_s:_
## con_z        0.008                                                   
## sc_scoredz   0.004  0.123                                            
## ons_zscored  0.005  0.079 -0.020                                     
## item_ambgs1 -0.802  0.000  0.000  0.000                              
## cn_z:sc_scr  0.029  0.033  0.091  0.088  0.000                       
## cn_z:ns_zsc  0.018  0.029  0.089  0.172  0.000 -0.009                
## sc_scrdz:n_ -0.010  0.083  0.170  0.089  0.000  0.192   0.187        
## cn_z:sc_s:_  0.018 -0.026  0.190  0.186  0.000  0.146   0.089   0.132

“IMRI” (H2)

df4s <- df4s %>%
  mutate(ebiasz3_arctic = ifelse(arctic20_z >= 3, 1, 0),
         ebiasz3_temp = ifelse(temp20_z >= 3, 1, 0),
         ebiasz3_ozone = ifelse(ozone20_z >= 3, 1, 0),
         ebiasz3_airqual = ifelse(airqual20_z >= 3, 1, 0))

df4s %>% 
  select(contains("ebiasz3")) %>% 
  psych::describe()
##                 vars   n mean   sd median trimmed mad min max range  skew
## ebiasz3_arctic     1 533 0.01 0.07      0       0   0   0   1     1 13.18
## ebiasz3_temp       2 533 0.03 0.16      0       0   0   0   1     1  5.91
## ebiasz3_ozone      3 533 0.00 0.00      0       0   0   0   0     0   NaN
## ebiasz3_airqual    4 533 0.00 0.00      0       0   0   0   0     0   NaN
##                 kurtosis   se
## ebiasz3_arctic    172.01 0.00
## ebiasz3_temp       32.96 0.01
## ebiasz3_ozone        NaN 0.00
## ebiasz3_airqual      NaN 0.00
arcticmodel1 <- glm(data = df4s, formula = ebiasz3_arctic ~ conservatism_f + rav_scored, family = "binomial")
summary(arcticmodel1)

arcticmodel2 <- glm(data = df4s, formula = ebiasz3_arctic ~ sc_scored + conservatism_f + rav_scored, family = "binomial")
summary(arcticmodel2)
tempmodel1 <- glm(data = df4s, formula = ebiasz3_temp ~ conservatism_f + rav_scored, family = "binomial")
summary(tempmodel1)

tempmodel2 <- glm(data = df4s, formula = ebiasz3_temp ~ sc_scored + conservatism_f + rav_scored, family = "binomial")
summary(tempmodel2)
ozonemodel1 <- glm(data = df4s, formula = ebiasz3_ozone ~ conservatism_f + rav_scored, family = "binomial")
summary(ozonemodel1)

ozonemodel2 <- glm(data = df4s, formula = ebiasz3_ozone ~ sc_scored + conservatism_f + rav_scored, family = "binomial")
summary(ozonemodel2)
airqualmodel1 <- glm(data = df4s, formula = ebiasz3_airqual ~ conservatism_f + rav_scored, family = "binomial")
summary(airqualmodel1)

airqualmodel2 <- glm(data = df4s, formula = ebiasz3_airqual ~ sc_scored + conservatism_f + rav_scored, family = "binomial")
summary(airqualmodel2)

Exploratory Analyses

tons of aot/nfc models

look1 <- lm(data = df4s, formula = arctic20_ch ~ conservatism_f + rav_scoredz + sc_scoredz + aot_zscored + nfc_zscored)
summary(look1)
## 
## Call:
## lm(formula = arctic20_ch ~ conservatism_f + rav_scoredz + sc_scoredz + 
##     aot_zscored + nfc_zscored, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.6814 -0.8452 -0.2202  0.4617  4.1234 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     2.027250   0.130492  15.535  < 2e-16 ***
## conservatism_f  0.149065   0.032094   4.645 4.31e-06 ***
## rav_scoredz    -0.007998   0.057539  -0.139 0.889507    
## sc_scoredz     -0.057148   0.059741  -0.957 0.339210    
## aot_zscored    -0.214203   0.064277  -3.332 0.000921 ***
## nfc_zscored     0.107467   0.058797   1.828 0.068149 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.247 on 527 degrees of freedom
## Multiple R-squared:  0.08962,    Adjusted R-squared:  0.08098 
## F-statistic: 10.38 on 5 and 527 DF,  p-value: 1.658e-09
look2 <- lm(data = df4s, formula = arctic20_ch ~ conservatism_f * aot_zscored)
summary(look2)
## 
## Call:
## lm(formula = arctic20_ch ~ conservatism_f * aot_zscored, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0670 -0.8532 -0.1803  0.3755  4.0770 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.07431    0.13099  15.836  < 2e-16 ***
## conservatism_f              0.14929    0.03180   4.695  3.4e-06 ***
## aot_zscored                -0.51006    0.13256  -3.848 0.000134 ***
## conservatism_f:aot_zscored  0.08260    0.03088   2.675 0.007702 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.241 on 529 degrees of freedom
## Multiple R-squared:  0.09574,    Adjusted R-squared:  0.09061 
## F-statistic: 18.67 on 3 and 529 DF,  p-value: 1.592e-11
look23 <- lm(data = df4s, formula = arctic20_ch ~ conservatism_f * aot_zscored)
summary(look23)
## 
## Call:
## lm(formula = arctic20_ch ~ conservatism_f * aot_zscored, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0670 -0.8532 -0.1803  0.3755  4.0770 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.07431    0.13099  15.836  < 2e-16 ***
## conservatism_f              0.14929    0.03180   4.695  3.4e-06 ***
## aot_zscored                -0.51006    0.13256  -3.848 0.000134 ***
## conservatism_f:aot_zscored  0.08260    0.03088   2.675 0.007702 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.241 on 529 degrees of freedom
## Multiple R-squared:  0.09574,    Adjusted R-squared:  0.09061 
## F-statistic: 18.67 on 3 and 529 DF,  p-value: 1.592e-11
look3 <- lm(data = df4s, formula = arctic20_ch ~ rav_scoredz + conservatism_f * aot_zscored)
summary(look3)
## 
## Call:
## lm(formula = arctic20_ch ~ rav_scoredz + conservatism_f * aot_zscored, 
##     data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0780 -0.8487 -0.1807  0.3804  4.0855 
## 
## Coefficients:
##                             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.074559   0.131140  15.819  < 2e-16 ***
## rav_scoredz                 0.004951   0.057429   0.086 0.931339    
## conservatism_f              0.149267   0.031829   4.690 3.49e-06 ***
## aot_zscored                -0.512460   0.135573  -3.780 0.000175 ***
## conservatism_f:aot_zscored  0.082851   0.031047   2.669 0.007851 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.242 on 528 degrees of freedom
## Multiple R-squared:  0.09575,    Adjusted R-squared:  0.0889 
## F-statistic: 13.98 on 4 and 528 DF,  p-value: 7.574e-11
look4 <- lm(data = df4s, formula = arctic20_ch ~ vl_zscored + conservatism_f * aot_zscored)
summary(look4)
## 
## Call:
## lm(formula = arctic20_ch ~ vl_zscored + conservatism_f * aot_zscored, 
##     data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0754 -0.8694 -0.1464  0.3857  4.1526 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.07627    0.13103  15.846  < 2e-16 ***
## vl_zscored                 -0.04935    0.05541  -0.891 0.373489    
## conservatism_f              0.14856    0.03181   4.670 3.83e-06 ***
## aot_zscored                -0.49418    0.13378  -3.694 0.000244 ***
## conservatism_f:aot_zscored  0.08104    0.03093   2.620 0.009044 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.241 on 528 degrees of freedom
## Multiple R-squared:  0.0971, Adjusted R-squared:  0.09026 
## F-statistic:  14.2 on 4 and 528 DF,  p-value: 5.184e-11
look5 <- lm(data = df4s, formula = arctic20_ch ~ nfc_zscored 
            + conservatism_f * aot_zscored) # 3 way int is a no go tho, w none of nfc int sig but me is
summary(look5)
## 
## Call:
## lm(formula = arctic20_ch ~ nfc_zscored + conservatism_f * aot_zscored, 
##     data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.2124 -0.8266 -0.1772  0.3910  3.9885 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.07519    0.13068  15.880  < 2e-16 ***
## nfc_zscored                 0.10384    0.05566   1.865  0.06267 .  
## conservatism_f              0.14989    0.03173   4.725 2.96e-06 ***
## aot_zscored                -0.55419    0.13435  -4.125 4.31e-05 ***
## conservatism_f:aot_zscored  0.08775    0.03093   2.837  0.00473 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.238 on 528 degrees of freedom
## Multiple R-squared:  0.1017, Adjusted R-squared:  0.09486 
## F-statistic: 14.94 on 4 and 528 DF,  p-value: 1.422e-11
look6 <- lm(data = df4s, formula = arctic20_ch ~ sc_scoredz 
            + conservatism_f * aot_zscored) 
summary(look6)
## 
## Call:
## lm(formula = arctic20_ch ~ sc_scoredz + conservatism_f * aot_zscored, 
##     data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0484 -0.8521 -0.1759  0.3848  4.0835 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.07839    0.13147  15.808  < 2e-16 ***
## sc_scoredz                 -0.02292    0.05640  -0.406 0.684657    
## conservatism_f              0.14813    0.03195   4.636 4.48e-06 ***
## aot_zscored                -0.50852    0.13272  -3.832 0.000143 ***
## conservatism_f:aot_zscored  0.08253    0.03090   2.671 0.007798 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.242 on 528 degrees of freedom
## Multiple R-squared:  0.09602,    Adjusted R-squared:  0.08918 
## F-statistic: 14.02 on 4 and 528 DF,  p-value: 7.019e-11
look7 <- lm(data = df4s, formula = arctic20_ch ~ sc_scoredz + nfc_zscored 
            + conservatism_f * aot_zscored) 
summary(look7)
## 
## Call:
## lm(formula = arctic20_ch ~ sc_scoredz + nfc_zscored + conservatism_f * 
##     aot_zscored, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1805 -0.8272 -0.1734  0.4039  4.0080 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.08635    0.13111  15.913  < 2e-16 ***
## sc_scoredz                 -0.06175    0.05918  -1.043  0.29723    
## nfc_zscored                 0.12296    0.05860   2.098  0.03635 *  
## conservatism_f              0.14687    0.03185   4.611 5.04e-06 ***
## aot_zscored                -0.55816    0.13439  -4.153 3.82e-05 ***
## conservatism_f:aot_zscored  0.08852    0.03093   2.862  0.00438 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.238 on 527 degrees of freedom
## Multiple R-squared:  0.1035, Adjusted R-squared:  0.09501 
## F-statistic: 12.17 on 5 and 527 DF,  p-value: 3.544e-11
look8 <- lm(data = df4s, formula = sc_scoredz ~ conservatism_f + aot_zscored + rav_scoredz)
summary(look8)
## 
## Call:
## lm(formula = sc_scoredz ~ conservatism_f + aot_zscored + rav_scoredz, 
##     data = df4s)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.74709 -0.60394  0.01412  0.68566  2.63830 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     0.18081    0.09962   1.815   0.0701 .
## conservatism_f -0.05097    0.02448  -2.083   0.0378 *
## aot_zscored     0.03770    0.04821   0.782   0.4346  
## rav_scoredz     0.06638    0.04397   1.510   0.1318  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9553 on 529 degrees of freedom
## Multiple R-squared:  0.01987,    Adjusted R-squared:  0.01431 
## F-statistic: 3.574 on 3 and 529 DF,  p-value: 0.01394
look9 <- lm(data = df4s, formula = sc_scoredz ~ conservatism_f)
summary(look9)
## 
## Call:
## lm(formula = sc_scoredz ~ conservatism_f, data = df4s)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.72928 -0.60925  0.01553  0.68654  2.59259 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)   
## (Intercept)     0.21865    0.09455   2.313  0.02113 * 
## conservatism_f -0.06076    0.02308  -2.633  0.00872 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9569 on 531 degrees of freedom
## Multiple R-squared:  0.01288,    Adjusted R-squared:  0.01102 
## F-statistic: 6.931 on 1 and 531 DF,  p-value: 0.00872
look10 <- lm(data = df4s, formula = sc_scoredz ~ conservatism_f + aot_zscored)
summary(look10)
## 
## Call:
## lm(formula = sc_scoredz ~ conservatism_f + aot_zscored, data = df4s)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.67766 -0.62788  0.00906  0.69085  2.62407 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     0.17979    0.09974   1.803   0.0720 .
## conservatism_f -0.05068    0.02450  -2.068   0.0391 *
## aot_zscored     0.05679    0.04658   1.219   0.2233  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9564 on 530 degrees of freedom
## Multiple R-squared:  0.01564,    Adjusted R-squared:  0.01193 
## F-statistic: 4.212 on 2 and 530 DF,  p-value: 0.01532
look11 <- lm(data = df4s, formula = sc_scoredz ~ aot_zscored)
summary(look11)
## 
## Call:
## lm(formula = sc_scoredz ~ aot_zscored, data = df4s)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.57256 -0.66113  0.04375  0.64862  2.62779 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -0.007838   0.041577  -0.189   0.8505  
## aot_zscored  0.089279   0.043985   2.030   0.0429 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9594 on 531 degrees of freedom
## Multiple R-squared:  0.007699,   Adjusted R-squared:  0.00583 
## F-statistic:  4.12 on 1 and 531 DF,  p-value: 0.04288
look1 <- lm(data = df4s, formula = arctic20_ch ~ conservatism_f + rav_scoredz + sc_scoredz + aot_zscored + nfc_zscored)
summary(look1)
## 
## Call:
## lm(formula = arctic20_ch ~ conservatism_f + rav_scoredz + sc_scoredz + 
##     aot_zscored + nfc_zscored, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.6814 -0.8452 -0.2202  0.4617  4.1234 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     2.027250   0.130492  15.535  < 2e-16 ***
## conservatism_f  0.149065   0.032094   4.645 4.31e-06 ***
## rav_scoredz    -0.007998   0.057539  -0.139 0.889507    
## sc_scoredz     -0.057148   0.059741  -0.957 0.339210    
## aot_zscored    -0.214203   0.064277  -3.332 0.000921 ***
## nfc_zscored     0.107467   0.058797   1.828 0.068149 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.247 on 527 degrees of freedom
## Multiple R-squared:  0.08962,    Adjusted R-squared:  0.08098 
## F-statistic: 10.38 on 5 and 527 DF,  p-value: 1.658e-09
look2 <- lm(data = df4s, formula = arctic20_ch ~ conservatism_f * aot_zscored)
summary(look2)
## 
## Call:
## lm(formula = arctic20_ch ~ conservatism_f * aot_zscored, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0670 -0.8532 -0.1803  0.3755  4.0770 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.07431    0.13099  15.836  < 2e-16 ***
## conservatism_f              0.14929    0.03180   4.695  3.4e-06 ***
## aot_zscored                -0.51006    0.13256  -3.848 0.000134 ***
## conservatism_f:aot_zscored  0.08260    0.03088   2.675 0.007702 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.241 on 529 degrees of freedom
## Multiple R-squared:  0.09574,    Adjusted R-squared:  0.09061 
## F-statistic: 18.67 on 3 and 529 DF,  p-value: 1.592e-11
look3 <- lm(data = df4s, formula = arctic20_ch ~ rav_scoredz + conservatism_f * aot_zscored)
summary(look3)
## 
## Call:
## lm(formula = arctic20_ch ~ rav_scoredz + conservatism_f * aot_zscored, 
##     data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0780 -0.8487 -0.1807  0.3804  4.0855 
## 
## Coefficients:
##                             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.074559   0.131140  15.819  < 2e-16 ***
## rav_scoredz                 0.004951   0.057429   0.086 0.931339    
## conservatism_f              0.149267   0.031829   4.690 3.49e-06 ***
## aot_zscored                -0.512460   0.135573  -3.780 0.000175 ***
## conservatism_f:aot_zscored  0.082851   0.031047   2.669 0.007851 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.242 on 528 degrees of freedom
## Multiple R-squared:  0.09575,    Adjusted R-squared:  0.0889 
## F-statistic: 13.98 on 4 and 528 DF,  p-value: 7.574e-11
look4 <- lm(data = df4s, formula = arctic20_ch ~ vl_zscored + conservatism_f * aot_zscored)
summary(look4)
## 
## Call:
## lm(formula = arctic20_ch ~ vl_zscored + conservatism_f * aot_zscored, 
##     data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0754 -0.8694 -0.1464  0.3857  4.1526 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.07627    0.13103  15.846  < 2e-16 ***
## vl_zscored                 -0.04935    0.05541  -0.891 0.373489    
## conservatism_f              0.14856    0.03181   4.670 3.83e-06 ***
## aot_zscored                -0.49418    0.13378  -3.694 0.000244 ***
## conservatism_f:aot_zscored  0.08104    0.03093   2.620 0.009044 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.241 on 528 degrees of freedom
## Multiple R-squared:  0.0971, Adjusted R-squared:  0.09026 
## F-statistic:  14.2 on 4 and 528 DF,  p-value: 5.184e-11
look5 <- lm(data = df4s, formula = arctic20_ch ~ nfc_zscored 
            + conservatism_f * aot_zscored) # 3 way int is a no go tho, w none of 
# nfc int sig but me is
summary(look5)
## 
## Call:
## lm(formula = arctic20_ch ~ nfc_zscored + conservatism_f * aot_zscored, 
##     data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.2124 -0.8266 -0.1772  0.3910  3.9885 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.07519    0.13068  15.880  < 2e-16 ***
## nfc_zscored                 0.10384    0.05566   1.865  0.06267 .  
## conservatism_f              0.14989    0.03173   4.725 2.96e-06 ***
## aot_zscored                -0.55419    0.13435  -4.125 4.31e-05 ***
## conservatism_f:aot_zscored  0.08775    0.03093   2.837  0.00473 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.238 on 528 degrees of freedom
## Multiple R-squared:  0.1017, Adjusted R-squared:  0.09486 
## F-statistic: 14.94 on 4 and 528 DF,  p-value: 1.422e-11
look6 <- lm(data = df4s, formula = arctic20_ch ~ sc_scoredz 
            + conservatism_f * aot_zscored) 
summary(look6)
## 
## Call:
## lm(formula = arctic20_ch ~ sc_scoredz + conservatism_f * aot_zscored, 
##     data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0484 -0.8521 -0.1759  0.3848  4.0835 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.07839    0.13147  15.808  < 2e-16 ***
## sc_scoredz                 -0.02292    0.05640  -0.406 0.684657    
## conservatism_f              0.14813    0.03195   4.636 4.48e-06 ***
## aot_zscored                -0.50852    0.13272  -3.832 0.000143 ***
## conservatism_f:aot_zscored  0.08253    0.03090   2.671 0.007798 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.242 on 528 degrees of freedom
## Multiple R-squared:  0.09602,    Adjusted R-squared:  0.08918 
## F-statistic: 14.02 on 4 and 528 DF,  p-value: 7.019e-11
look7 <- lm(data = df4s, formula = arctic20_ch ~ sc_scoredz + nfc_zscored 
            + conservatism_f * aot_zscored) 
summary(look7)
## 
## Call:
## lm(formula = arctic20_ch ~ sc_scoredz + nfc_zscored + conservatism_f * 
##     aot_zscored, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1805 -0.8272 -0.1734  0.4039  4.0080 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                 2.08635    0.13111  15.913  < 2e-16 ***
## sc_scoredz                 -0.06175    0.05918  -1.043  0.29723    
## nfc_zscored                 0.12296    0.05860   2.098  0.03635 *  
## conservatism_f              0.14687    0.03185   4.611 5.04e-06 ***
## aot_zscored                -0.55816    0.13439  -4.153 3.82e-05 ***
## conservatism_f:aot_zscored  0.08852    0.03093   2.862  0.00438 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.238 on 527 degrees of freedom
## Multiple R-squared:  0.1035, Adjusted R-squared:  0.09501 
## F-statistic: 12.17 on 5 and 527 DF,  p-value: 3.544e-11
look8 <- lm(data = df4s, formula = sc_scoredz ~ conservatism_f + aot_zscored + rav_scoredz)
summary(look8)
## 
## Call:
## lm(formula = sc_scoredz ~ conservatism_f + aot_zscored + rav_scoredz, 
##     data = df4s)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.74709 -0.60394  0.01412  0.68566  2.63830 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     0.18081    0.09962   1.815   0.0701 .
## conservatism_f -0.05097    0.02448  -2.083   0.0378 *
## aot_zscored     0.03770    0.04821   0.782   0.4346  
## rav_scoredz     0.06638    0.04397   1.510   0.1318  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9553 on 529 degrees of freedom
## Multiple R-squared:  0.01987,    Adjusted R-squared:  0.01431 
## F-statistic: 3.574 on 3 and 529 DF,  p-value: 0.01394
look9 <- lm(data = df4s, formula = sc_scoredz ~ conservatism_f)
summary(look9)
## 
## Call:
## lm(formula = sc_scoredz ~ conservatism_f, data = df4s)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.72928 -0.60925  0.01553  0.68654  2.59259 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)   
## (Intercept)     0.21865    0.09455   2.313  0.02113 * 
## conservatism_f -0.06076    0.02308  -2.633  0.00872 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9569 on 531 degrees of freedom
## Multiple R-squared:  0.01288,    Adjusted R-squared:  0.01102 
## F-statistic: 6.931 on 1 and 531 DF,  p-value: 0.00872
look10 <- lm(data = df4s, formula = sc_scoredz ~ conservatism_f + aot_zscored)
summary(look10)
## 
## Call:
## lm(formula = sc_scoredz ~ conservatism_f + aot_zscored, data = df4s)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.67766 -0.62788  0.00906  0.69085  2.62407 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)  
## (Intercept)     0.17979    0.09974   1.803   0.0720 .
## conservatism_f -0.05068    0.02450  -2.068   0.0391 *
## aot_zscored     0.05679    0.04658   1.219   0.2233  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9564 on 530 degrees of freedom
## Multiple R-squared:  0.01564,    Adjusted R-squared:  0.01193 
## F-statistic: 4.212 on 2 and 530 DF,  p-value: 0.01532
look11 <- lm(data = df4s, formula = sc_scoredz ~ aot_zscored)
summary(look11)
## 
## Call:
## lm(formula = sc_scoredz ~ aot_zscored, data = df4s)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.57256 -0.66113  0.04375  0.64862  2.62779 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -0.007838   0.041577  -0.189   0.8505  
## aot_zscored  0.089279   0.043985   2.030   0.0429 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9594 on 531 degrees of freedom
## Multiple R-squared:  0.007699,   Adjusted R-squared:  0.00583 
## F-statistic:  4.12 on 1 and 531 DF,  p-value: 0.04288
look12 <- lm(data = df4s, formula = sc_scoredz ~ vl_zscored + rav_scoredz + nfc_zscored)
summary(look12)
## 
## Call:
## lm(formula = sc_scoredz ~ vl_zscored + rav_scoredz + nfc_zscored, 
##     data = df4s)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.52630 -0.61392  0.00016  0.62678  2.44010 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.007654   0.039485  -0.194    0.846    
## vl_zscored   0.009026   0.041302   0.219    0.827    
## rav_scoredz  0.057045   0.041761   1.366    0.173    
## nfc_zscored  0.306424   0.040043   7.652  9.4e-14 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9115 on 529 degrees of freedom
## Multiple R-squared:  0.1076, Adjusted R-squared:  0.1026 
## F-statistic: 21.26 on 3 and 529 DF,  p-value: 5.106e-13
look13 <- lm(data = df4s, formula = sc_scoredz ~ rav_scoredz +
               conservatism_f + nfc_zscored + aot_zscored + vl_zscored)
summary(look13)
## 
## Call:
## lm(formula = sc_scoredz ~ rav_scoredz + conservatism_f + nfc_zscored + 
##     aot_zscored + vl_zscored, data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.6073 -0.6264  0.0049  0.6361  2.4335 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     0.172842   0.094882   1.822   0.0691 .  
## rav_scoredz     0.058887   0.042823   1.375   0.1697    
## conservatism_f -0.048736   0.023314  -2.090   0.0371 *  
## nfc_zscored     0.306059   0.040821   7.498 2.77e-13 ***
## aot_zscored    -0.033601   0.047131  -0.713   0.4762    
## vl_zscored      0.006859   0.041554   0.165   0.8690    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9095 on 527 degrees of freedom
## Multiple R-squared:  0.115,  Adjusted R-squared:  0.1066 
## F-statistic: 13.69 on 5 and 527 DF,  p-value: 1.397e-12

plots

df4s %>% 
  ggplot(aes(x = aot_zscored, y = sc_scoredz, fill = as.factor(con))) +
  geom_smooth()

df4s %>% 
  ggplot(aes(x = aot_zscored, y = sc_scoredz)) +
  geom_smooth()

df4s %>% 
  ggplot(aes(x = con, y = sc_scoredz)) +
  geom_smooth()

expmods

expmod1 <- lm(data = df3s, formula = arctic10_ch ~ rav_scoredz + con + sc_scoredz)
summary(expmod1)
## 
## Call:
## lm(formula = arctic10_ch ~ rav_scoredz + con + sc_scoredz, data = df3s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.4114 -0.4028 -0.0401  0.1636  3.9250 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.12152    0.03950  79.020  < 2e-16 ***
## rav_scoredz -0.05683    0.04040  -1.407    0.160    
## con          0.18909    0.04174   4.531 7.27e-06 ***
## sc_scoredz  -0.01027    0.04125  -0.249    0.804    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9083 on 529 degrees of freedom
## Multiple R-squared:  0.04316,    Adjusted R-squared:  0.03773 
## F-statistic: 7.954 on 3 and 529 DF,  p-value: 3.397e-05
expmod2 <- lm(data = df3s, formula = arctic20_ch ~ rav_scoredz + con + sc_scoredz)
summary(expmod2)
## 
## Call:
## lm(formula = arctic20_ch ~ rav_scoredz + con + sc_scoredz, data = df3s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1408 -0.9026 -0.2549  0.5698  4.6022 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.59650    0.05516  47.074  < 2e-16 ***
## rav_scoredz -0.06392    0.05641  -1.133    0.258    
## con          0.30482    0.05828   5.231 2.44e-07 ***
## sc_scoredz  -0.03785    0.05760  -0.657    0.511    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.268 on 529 degrees of freedom
## Multiple R-squared:  0.0552, Adjusted R-squared:  0.04985 
## F-statistic:  10.3 on 3 and 529 DF,  p-value: 1.335e-06

plots

df4s %>% 
  ggplot(aes(x = aot_zscored, y = arctic20_ch, fill = as.factor(con))) +
  geom_smooth()

df4s %>% 
  ggplot(aes(x = con, y = arctic20_ch)) +
  geom_bar(fun = "mean", stat = "summary")

df4s %>% 
  filter(con == -1) %>% 
  select(aot_zscored) %>% 
  hist()

df4s %>% 
  filter(con == 1) %>% 
  select(aot_zscored) %>% 
  hist()

df4s %>% 
  ggplot(aes(x = conservatism, y = aot_zscored)) +
  geom_bar(fun = "mean", stat = "summary")

df4s %>% 
  ggplot(aes(x = conservatism, y = sc_scoredz)) +
  geom_bar(fun = "mean", stat = "summary")

df4s %>% 
  ggplot(aes(x = conservatism)) +
  geom_bar()

df4s %>% 
  ggplot(aes(x = sc_scoredz)) +
  geom_bar()

df4s %>% 
  ggplot(aes(x = aot_zscored)) +
  geom_bar()

df4s %>% 
  ggplot(aes(x = nfc_zscored)) +
  geom_bar()

df4s %>% 
  ggplot(aes(x = vl_zscored)) +
  geom_bar()

facet plots

# aot
descplot_aot <- df4s %>% 
  # select(conservatism, conservatism_f, aot_zscored, nfc_zscored, rav_scoredz,
  #        sc_scoredz, vl_zscored, arctic20_ch, temp20_ch, arctic10_ch, 
  #        temp10_ch) %>% 
  mutate(conservatism = as.factor(conservatism),
         aot_zscored = as.numeric(aot_zscored)) %>% 
  select(aot_zscored, conservatism)%>% 
  group_by(conservatism) %>%
  dplyr::summarise(n = n(),
            Mean = mean(aot_zscored, na.rm=T),
            sd = sd(aot_zscored, na.rm=T),
            se = sd/(sqrt(n)),
            var = "5. Actively Open-Minded Thinking",
            min = min(aot_zscored),
            max = max(aot_zscored))

descplot_aot  %>% 
  ggplot(aes(x = conservatism, y = Mean)) +
  geom_bar(stat = "identity") +
  geom_errorbar(aes(ymin=Mean-se, ymax=Mean+se))

# sc
descplot_sc <- df4s %>% 
  # select(conservatism, conservatism_f, aot_zscored, nfc_zscored, rav_scoredz,
  #        sc_scoredz, vl_zscored, arctic20_ch, temp20_ch, arctic10_ch, 
  #        temp10_ch) %>% 
  mutate(conservatism = as.factor(conservatism),
         sc_scoredz = as.numeric(sc_scoredz)) %>% 
  select(sc_scoredz, conservatism)%>% 
  group_by(conservatism) %>%
  dplyr::summarise(n = n(),
            Mean = mean(sc_scoredz, na.rm=T),
            sd = sd(sc_scoredz, na.rm=T),
            se = sd/(sqrt(n)),
            var = "1. Science Curiosity",
            min = min(sc_scoredz),
            max = max(sc_scoredz))

# nfc
descplot_nfc <- df4s %>% 
  # select(conservatism, conservatism_f, aot_zscored, nfc_zscored, rav_scoredz,
  #        sc_scoredz, vl_zscored, arctic20_ch, temp20_ch, arctic10_ch, 
  #        temp10_ch) %>% 
  mutate(conservatism = as.factor(conservatism),
         nfc_zscored = as.numeric(nfc_zscored)) %>% 
  select(nfc_zscored, conservatism)%>% 
  group_by(conservatism) %>%
  dplyr::summarise(n = n(),
            Mean = mean(nfc_zscored, na.rm=T),
            sd = sd(nfc_zscored, na.rm=T),
            se = sd/(sqrt(n)),
            var = "4. Need For Cognition",
            min = min(nfc_zscored),
            max = max(nfc_zscored))

descplt_facet <- rbind(descplot_aot, descplot_sc, descplot_nfc)
descplt_facet  %>% 
  ggplot(aes(x = conservatism, y = Mean)) +
  geom_bar(stat = "identity", fill = "darkseagreen") +
  geom_errorbar(aes(ymin=Mean-se, ymax=Mean+se), width = .2) +
  facet_wrap(~var) +
  labs(x = "Conservatism", y = "Mean (z-scored)") +
  theme_bw()

descplot_rav <- df4s %>% 
  # select(conservatism, conservatism_f, aot_zscored, nfc_zscored, rav_scoredz,
  #        sc_scoredz, vl_zscored, arctic20_ch, temp20_ch, arctic10_ch, 
  #        temp10_ch) %>% 
  mutate(conservatism = as.factor(conservatism),
         rav_scoredz = as.numeric(rav_scoredz)) %>% 
  select(rav_scoredz, conservatism)%>% 
  group_by(conservatism) %>%
  dplyr::summarise(n = n(),
            Mean = mean(rav_scoredz, na.rm=T),
            sd = sd(rav_scoredz, na.rm=T),
            se = sd/(sqrt(n)),
            var = "2. Raven's Progressive Matrices",
            min = min(rav_scoredz),
            max = max(rav_scoredz))

descplot_vl <- df4s %>% 
  # select(conservatism, conservatism_f, aot_zscored, nfc_zscored, rav_scoredz,
  #        sc_scoredz, vl_zscored, arctic20_ch, temp20_ch, arctic10_ch, 
  #        temp10_ch) %>% 
  mutate(conservatism = as.factor(conservatism),
         vl_zscored = as.numeric(vl_zscored)) %>% 
  select(vl_zscored, conservatism)%>% 
  group_by(conservatism) %>%
  dplyr::summarise(n = n(),
            Mean = mean(vl_zscored, na.rm=T),
            sd = sd(vl_zscored, na.rm=T),
            se = sd/(sqrt(n)),
            var = "3. Verbal Logic",
            min = min(vl_zscored),
            max = max(vl_zscored))

descplotca <- rbind(descplot_rav, descplot_sc, descplot_vl)
descplotca  %>% 
  ggplot(aes(x = conservatism, y = Mean)) +
  geom_bar(stat = "identity", fill = "darkseagreen") +
  geom_errorbar(aes(ymin=Mean-se, ymax=Mean+se), width = .2) +
  facet_wrap(~var) +
  labs(x = "Conservatism", y = "Mean (z-scored)") +
  theme_bw()

descplotall <- rbind(descplotca, descplot_aot, descplot_nfc)
descplotall  %>% 
  ggplot(aes(x = conservatism, y = Mean)) +
  geom_bar(stat = "identity", fill = "darkseagreen") +
  geom_errorbar(aes(ymin=Mean-se, ymax=Mean+se), width = .2) +
  facet_wrap(~var, ncol=3) +
  labs(x = "Conservatism", y = "Mean (z-scored)") +
  theme_bw()

desc5 <- descplotall  %>% 
  ggplot(aes(x = conservatism, y = Mean)) +
  geom_bar(stat = "identity", fill = "darkseagreen") +
  geom_errorbar(aes(ymin=Mean-se, ymax=Mean+se), width = .2) +
  facet_wrap(~var, ncol=3) +
  labs(x = "Conservatism", y = "Mean (z-scored)") +
  theme_bw()

plot by sci cur

sep plots

# df4s %>% 
#   select(contains("20_ch"), con, rav_scoredz, sc_scoredz,
#          aot_zscored, nfc_zscored, vl_zscored) %>% 
#   cor() %>% 
#   kable()

Difference score btwn MR and “filler”

ch_moda <- lm(data = df4s, formula = ArcIce_2 ~ con + rav_scoredz)

ch_modb <- lm(data = df4s, formula = temp20_ch ~ con + rav_scoredz + 
               sc_scoredz + diatho20_ch)

summary(ch_modb)
## 
## Call:
## lm(formula = temp20_ch ~ con + rav_scoredz + sc_scoredz + diatho20_ch, 
##     data = df4s)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.3610 -0.7210 -0.1114  0.4407  4.9578 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.75752    0.14945  11.760  < 2e-16 ***
## con          0.27001    0.05013   5.386 1.09e-07 ***
## rav_scoredz -0.04317    0.04881  -0.884    0.377    
## sc_scoredz  -0.09262    0.04952  -1.870    0.062 .  
## diatho20_ch  0.16558    0.03826   4.328 1.80e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.09 on 528 degrees of freedom
## Multiple R-squared:  0.1031, Adjusted R-squared:  0.09628 
## F-statistic: 15.17 on 4 and 528 DF,  p-value: 9.503e-12